# middleware/cors_middleware.py
from fastapi.middleware.cors import CORSMiddleware


def add_cors_middleware(app):
    origins = [
        "http://localhost.tiangolo.com",
        "https://localhost.tiangolo.com",
        "http://localhost",
        "http://localhost:8080",
        "http://192.168.2.1/"
    ]

    app.add_middleware(
        CORSMiddleware,
        # allow_origins - 一个允许跨域请求的源列表。例如 ['https://example.org', 'https://www.example.org']。你可以使用 ['*'] 允许任何源。
        # allow_origin_regex - 一个正则表达式字符串，匹配的源允许跨域请求。例如 'https://.*\.example\.org'。
        allow_origins=origins,
        # allow_credentials - 指示跨域请求支持 cookies。默认是 False。
        # 另外，允许凭证时 allow_origins 不能设定为 ['*']，必须指定源。
        allow_credentials=True,
        # allow_methods - 一个允许跨域请求的 HTTP 方法列表。默认为 ['GET']。你可以使用 ['*'] 来允许所有标准方法。
        allow_methods=["*"],
        # allow_headers - 一个允许跨域请求的 HTTP 请求头列表。默认为 []。
        # 你可以使用 ['*'] 允许所有的请求头。
        # Accept、Accept-Language、Content-Language 以及 Content-Type 请求头总是允许 CORS 请求。
        allow_headers=["*"],
        # expose_headers - 指示可以被浏览器访问的响应头。默认为 []。
        # max_age - 设定浏览器缓存 CORS 响应的最长时间，单位是秒。默认为 600。
    )
